﻿#include<iostream>
#include"hstring.h"

class T {
public:
	explicit T(int val) {//加了explicit后100无法变为T类

	}
	explicit operator int() {
		return 1;
	}
	int operator+(T x) {
		return 2;
	}
};

int main() {
	hstring str{ "123" };
	std::cout << str + 123 << std::endl;
	int x = int(str) + 123;//这里想要str变int与123相加，而不是123变hstring后与str拼接
	std::cout << x << std::endl;
	hstring strls{ (char)0 };
	if (strls == nullptr)std::cout << "空字符串！" << std::endl;
	else std::cout << "非空字符串！" << std::endl;
	std::cout << 1213 << std::endl;
	short mon = strls;//执行了hstring::operator bool()，因为strls是0，被强转short
	std::cout << mon << std::endl;//0

	T t1{ 100 }, t2{ 200 };
	int s = t1 + T(100);//有2种转法，第一种t1转为int返回1与100相加变为101，第二种100变T返回2
	std::cout << s << std::endl;//2
}